﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PreCommitHook.Datos.Interfaces;
using PreCommitHook.Datos.FabricaDatos;
using System.Data.SqlClient;

namespace PreCommitHook.Datos.DaosSqlServer
{
   public class DaoSqlServerAccesoCredencial : IDaoAccesoCredencial
    {
       IDaoAccesoConexion bd = FabricaConexion.DaoSqlServerAccesoConexion();

       /// <summary>
       /// Devuelve el id correspondiente de la base de datos del usuario registrado en el SVN
       /// </summary>
       /// <param name="usuario"></param>
       /// <returns></returns>
       public int FuncConsultarIdUsuario(string usuario)
       {
           SqlCommand command = new SqlCommand();

           try
           {
               bd.AbrirConexionBd();
               command.Connection = bd.ObjetoConexion();
               command.CommandType = System.Data.CommandType.StoredProcedure; //Tipo de comando que se va a ejecutar
               command.CommandText = "[dbo].[SELidUsuario.sql]"; // Nombre del Procedimiento Almacenado en la Base de Datos
               command.CommandTimeout = 10;

               command.Parameters.AddWithValue("@usernameUsuario", usuario);
               SqlDataReader reader = command.ExecuteReader();

               while (reader.Read())
               {
                   int strUsuario = Convert.ToUInt16(reader.GetValue(0));
                   return strUsuario;
               }

               reader.Close();
               bd.CerrarConexionBd();
               return 0;
           }

           catch (SqlException)
           {
               bd.CerrarConexionBd();
               return 0;
           }

           catch (Exception)
           {
               bd.CerrarConexionBd();
               return 0;
           }
       }
    }
}
